home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / hobbes3 / hobbes.h < prev    next >
C/C++ Source or Header  |  1992-08-26  |  8KB  |  234 lines

  1. // the ModeX header from HELL
  2.  
  3. #pragma hdrfile "modex.SYM"
  4. #ifndef HOBBES_H
  5. #define HOBBES_H
  6.  
  7.  
  8. #define TRUE         1
  9. #define FALSE         0
  10.  
  11. /* default colors
  12. BLACK        │  0  │
  13. BLUE         │  1  │
  14. GREEN        │  2  │
  15. CYAN         │  3  │
  16. RED          │  4  │
  17. MAGENTA      │  5  │
  18. BROWN        │  6  │
  19. LIGHTGRAY    │  7  │
  20. DARKGRAY     │  8  │
  21. LIGHTBLUE    │  9  │
  22. LIGHTGREEN   │ 10  │
  23. LIGHTCYAN    │ 11  │
  24. LIGHTRED     │ 12  │
  25. LIGHTMAGENTA │ 13  │
  26. YELLOW       │ 14  │
  27. WHITE        │ 15  │
  28. */
  29. #define CRTC_INDEX    0x03d4
  30. #define OFFSET        0x13
  31.  
  32. enum ROP_ENUM { PUT_ROP=0, AND_ROP=8, OR_ROP=16, XOR_ROP=24 };
  33.  
  34. typedef unsigned char BYTE;
  35. typedef unsigned int  WORD;     /* 16 bits */
  36. typedef unsigned long DWORD;    /* 32 bits */
  37. typedef char             BOOL;
  38. typedef int             COLOR;
  39. typedef far char*        PATTERN;
  40. typedef unsigned int      VRAM_PTR;
  41. typedef enum ROP_ENUM    ROP;
  42. #define PALETTE BYTE[256][3]
  43.  
  44.  
  45. extern int RowOffset[];
  46. extern unsigned Background_Offset;
  47. extern unsigned Bitmap_Offset, Pattern_Offset;
  48. extern unsigned ClipLeft, ClipTop, ClipRight, ClipBottom;
  49. extern unsigned ModeX_Segment, Draw_Offset, Display_Offset;
  50. extern unsigned Split_Line, Split_Offset, Page0_Offset, Page1_Offset;
  51. extern unsigned Virtual_Width_Addr, Virtual_Height_Addr;
  52. extern unsigned Virtual_Width_Pix, Virtual_Height_Pix, Virtual_Size;
  53. extern unsigned Background_Offset, Bitmap_Offset, Pattern_Offset;
  54. extern unsigned Double_Buffer, Current_Page;
  55. extern unsigned Physical_Width_Addr, Physical_Height_Addr;
  56. extern unsigned Physical_Width_Pix, Physical_Height_Pix;
  57. extern unsigned MousePage_Offset;
  58.  
  59. #ifdef __cplusplus
  60. extern "C" {
  61. #endif
  62.  
  63. void    WaitForRetrace        (void);
  64. void     SwapPage            (void);
  65. void    FlipPage            (void);
  66. void     SetClipPort            (int Left, int Top, int Right, int Bottom);
  67. void     SetVirtualPort        (int MaxX, int MaxY);
  68. void     ClearClipPort        (void);
  69. void     ClearVirtualPort    (void);
  70. void     SetDisplay            (int x, int y);
  71.  
  72. void    Set320x200Mode        (void);
  73. void     Set320x240Mode        (void);
  74. void     Set320x400Mode        (void);
  75. void     Set360x480Mode        (void);
  76. void     SetSplit            (unsigned Line);
  77. void     ShowPage            (VRAM_PTR Offset);
  78. void    RestoreTextMode        (void);
  79.  
  80. void      Set1Palette            (int entry, char red, char green, char blue);
  81. void      Get256Palette        (COLOR palette[256][3]);
  82. void      Set256Palette        (COLOR palette[256][3]);
  83. void    FadeOut                (int steps, COLOR palette[256][3]);
  84. void    FadeIn                (int steps, COLOR palette[256][3]);
  85.  
  86. void      Pixel                (int x, int y, COLOR);
  87. void      PixelClip            (int x, int y, COLOR);
  88. void     PixelROP            (int x, int y, COLOR, ROP);
  89. void       PixelPattern        (int x, int y, PATTERN);
  90. void      PixelPatternClip    (int x, int y, PATTERN);
  91. COLOR     PixelSwap            (int x, int y, COLOR);
  92. COLOR     ReadPixel            (int x, int y);
  93.  
  94. void     HLine                (int x0, int x1, int y, COLOR);
  95. void     HLineClip            (int x0, int x1, int y, COLOR);
  96. void     HLinePattern        (int x0, int x1, int y, PATTERN);
  97. void     HLinePatternClip    (int x0, int x1, int y, PATTERN);
  98. void     VLine                (int x, int y0, int y1, COLOR);
  99. void     VLineClip            (int x, int y0, int y1, COLOR);
  100. void     VLinePattern        (int x, int y0, int y1, PATTERN);
  101. void     VLinePatternClip    (int x, int y0, int y1, PATTERN);
  102. void     Line                (int x1, int y1, int x2, int y2, COLOR);
  103. void    LineClip            (int x1, int y1, int x2, int y2, COLOR);
  104.  
  105. void     Rectangle               (int x0, int y0, int x1, int y1, COLOR);
  106. void     RectangleClip           (int x0, int y0, int x1, int y1, COLOR);
  107. void     RectangleFill            (int x0, int y0, int x1, int y1, COLOR);
  108. void     RectangleFillClip        (int x0, int y0, int x1, int y1, COLOR);
  109. void     RectanglePattern        (int x0, int y0, int x1, int y1, PATTERN);
  110. void     RectanglePatternClip    (int x0, int y0, int x1, int y1, PATTERN);
  111. void     RectangleFillPattern    (int x0, int y0, int x1, int y1, PATTERN);
  112. void     RectangleFillPatternClip(int x0, int y0, int x1, int y1, PATTERN);
  113. void     RectangleFillAligned    (int x0, int y0, int x1, int y1, COLOR);
  114.  
  115. void    TriangleFillClip        (int x0, int y0, int x1, int y1, int x2, int y2, COLOR);
  116.  
  117. void     Circle                  (int x, int y, int radius, COLOR);
  118. void     CircleClip              (int x, int y, int radius, COLOR);
  119. void     CircleFill                (int x, int y, int radius, COLOR);
  120. void     CircleFillClip            (int x, int y, int radius, COLOR);
  121. void     CirclePattern            (int x, int y, int radius, PATTERN);
  122. void     CirclePatternClip        (int x, int y, int radius, PATTERN);
  123. void     CircleFillPattern        (int x, int y, int radius, PATTERN);
  124. void     CircleFillPatternClip    (int x, int y, int radius, PATTERN);
  125.  
  126. void     Ellipse                    (int x, int y, int a, int b, COLOR);
  127. void     EllipseClip                (int x, int y, int a, int b, COLOR);
  128. void     EllipseFill                (int x, int y, int a, int b, COLOR);
  129. void     EllipseFillClip            (int x, int y, int a, int b, COLOR);
  130. void     EllipsePattern            (int x, int y, int a, int b, PATTERN);
  131. void     EllipsePatternClip        (int x, int y, int a, int b, PATTERN);
  132. void     EllipseFillPattern        (int x, int y, int a, int b, PATTERN);
  133. void     EllipseFillPatternClip    (int x, int y, int a, int b, PATTERN);
  134.  
  135. void     Text                    (int X, int Y, char *TEXT, COLOR);
  136. BOOL     PCX_Read                (char *fname);
  137. //void    FloodFill                (int wx,int wy,int notcol,int col);
  138.  
  139.  
  140. enum curstype {
  141.         Standard, UpArrow, LeftArrow, CheckMark, PointingHand, DiagonalCross,
  142.         RectangularCross, HourGlass, UserDef1, UserDef2, UserDef3, UserDef4
  143.     };
  144. extern struct {
  145.         unsigned char bitmap[8];
  146.         unsigned char HorizHotSpot;
  147.         unsigned char VertHotSpot;
  148.     } UserDefCurs1,UserDefCurs2,UserDefCurs3,UserDefCurs4;
  149. extern unsigned int MouseX, MouseY;
  150. extern unsigned int MPresent, MouseKey;
  151. BOOL    MouseInit                (int MouseX, int MouseY, COLOR);
  152. void    MouseUnInit                (void);
  153. void     MouseShowCursor            (void);
  154. void     MouseHideCursor            (void);
  155. void     MouseSetCursorShape        (enum curstype thetype);
  156. void     SetMousePort            (int x0, int y0, int x1, int y1);
  157. BOOL     MouseNonePressed        (void);
  158. BOOL     MouseLeftPressed        (void);
  159. BOOL     MouseRightPressed        (void);
  160. BOOL     MouseCenterPressed        (void);
  161. BOOL     MouseCenterLeftPressed    (void);
  162. BOOL     MouseCenterRightPressed    (void);
  163. BOOL     MouseAllPressed            (void);
  164. void    MouseSetPage            (VRAM_PTR mpageoffset);
  165.  
  166. typedef struct {
  167.     int ImageWidth;
  168.     VRAM_PTR ImagePtr;
  169.     char *MaskPtr;
  170. } AlignedMaskedImage;
  171.  
  172. typedef struct {
  173.     AlignedMaskedImage    *Alignments[4];
  174. } MaskedImage;
  175.  
  176. void CopySystemToScreenMasked(int, int, int, int, int, int,
  177.     char *, VRAM_PTR, int, int, char *);
  178.     /* (SourceStartX, SourceStartY, SourceEndX, SourceEndY,
  179.         DestStartX, DestStartY,
  180.         SourcePtr, DestPageBase, SourceBitmapWidth, DestBitmapWidth,
  181.         MaskPtr) */
  182.  
  183. extern void CopySystemToScreen(int, int, int, int, int, int, char*, VRAM_PTR,
  184.     int, int);
  185.     /* (SourceStartX, SourceStartY, SourceEndX, SourceEndY,
  186.         DestStartX, DestStartY,
  187.         SourcePtr, DestPageBase, SourceBitmapWidth, DestBitmapWidth) */
  188.  
  189. extern void CopyScreenToScreenMaskedX(int, int, int, int, int, int,
  190.      int, int, char far*);
  191.     /* (SourceStartX, SourceStartY, SourceEndX, SourceEndY,
  192.         DestStartX, DestStartY,
  193.         ImageWidth, ImagePtr, DestPageBase, DestBitmapWidth) */
  194.  
  195. void CopyScreenToScreenMasked(int SourceStartX, int SourceStartY,
  196.     int SourceEndX, int SourceEndY,    int DestStartX, int DestStartY,
  197.     MaskedImage *Source, VRAM_PTR DestPageBase, int DestWidth);
  198.  
  199.  
  200. extern void CopyScreenToScreen(int, int, int, int, int, int,
  201.     VRAM_PTR, VRAM_PTR, int, int);
  202.     /* (SourceStartX, SourceStartY, SourceEndX, SourceEndY,
  203.     DestStartX, DestStartY, SourcePageBase, DestPageBase,
  204.     SourceBitmapWidth, DestBitmapWidth) */
  205.  
  206. void CreateAlignedMaskedImage(MaskedImage *ImageToSet, char *Image,
  207.         int ImageWidth,    int ImageHeight, char *Mask);
  208.  
  209. #ifdef __cplusplus
  210. }
  211. #endif
  212.  
  213. #define ALIGN_DWORD(x) (((x)+3)/4 * 4)
  214. struct PCXRGB { BYTE r, g, b; };
  215. struct PCXHeader {
  216.     BYTE     Manufacturer;
  217.     BYTE     Version;
  218.     BYTE     Encoding;
  219.     BYTE     BitsPixel;
  220.     int      Xmin, Ymin;
  221.     int      Xmax, Ymax;
  222.     int      Hres, Vres;
  223. //    PCXRGB   Palette[16];
  224.     BYTE     Palette[48];
  225.     BYTE     Reserved;
  226.     BYTE     NPlanes;
  227.     int      BytesLine;
  228.     int      PaletteInfo;
  229.     BYTE     Filler[58];
  230. };
  231.  
  232.  
  233. #endif
  234. #pragma hdrstop